/*!
 @header DynamicDetailViewController.h
 @author 周益
 @version 1.0.0 2013/02/02 Creation
 Copyright (c) 2013年 mypocketbaby. All rights reserved.
 */

#import <UIKit/UIKit.h>
#import "Config.h"
#import "JSONRequest.h"
#import "CloseControllerDelegate.h"
#import "CommentPubViewController.h"

/*!
 @abstract DynamicDetailViewController的协议，定义了
 @discussion @optional
 */
@protocol DynamicOperateDelegate <NSObject>

@optional

/*!
 @abstract 获得个性签名的内容，让代理对象进行后续处理。
 @discussion @optional
 @param dynamic 此动态的详细信息。
 @param flag 根据flag的值会有不同的操作，flag=2，及时更新此动态，保证此动态为最新；
                                     flag=3，说明用户删除了此动态，那么就要删除动态首页的数据源相应的动态。
 */
- (void)dynamic:(NSDictionary *)dynamic operate:(int)flag;

@end

/*!
 @abstract DynamicDetailViewController展现了一条动态的更详细的信息，比起动态首页增加了他的评论信息，以及如果是推荐动态，那么会多增加一个
 footerview用于展示此推荐动态的原商品动态的评论数等数据。
 */
@interface DynamicDetailViewController : UIViewController <UIActionSheetDelegate, JSONRequestDelegate, UITableViewDelegate, UITableViewDataSource, CommentPubViewControllerDelegate, UIAlertViewDelegate>
{
    NSMutableArray*  _commentsDataSource;                   //评论列表数据源
    UIToolbar*       _toolbar;                              //底部工具栏
    NSInteger        _dynamicID;                            //动态ID
    DynamicCategory  _dynamicCategory;                      //动态类型
    NSInteger        _userID;                               //用户ID
    NSInteger        _commentID;                            //评论ID
    NSDictionary*    _dynamic;                              //动态
    NSInteger        _orderId;                              //历史订单去评论功能使用的保存订单ID变量
    
    BOOL _disMode;                                          //VC弹出方式
    BOOL _parentDisFlag;                                    //
    id<CloseControllerDelegate> _delegate;
    
    
    UIButton *_discussButton;                               //评论按钮
    UIButton *_deleteButton;                                //删除按钮
    UIButton *_purchaseButton;                              //购买按钮
    UIButton *_recommendButton;                             //推荐按钮
    UIButton *_favoriteButton;                              //收藏按钮
    UIBarButtonItem *_fixedButton;                          //toolbar填充
    
    NSInteger _rowIsSelected;                               //用户操作的焦点行（即对应评论列表的评论row）
    
    NSDictionary *_userInfo;                                //用户的跟个人信息
    
    __weak id<DynamicOperateDelegate> _operateDelegate;
    
    BOOL _commentSignal;                                    //YES:评论 NO:回复别人的评论
}

/*!
 @abstract DynamicDetailViewController带参数的初始化方法
 @param dynamicID 动态ID
 @result InfoPickerViewController的实例
 */
- (id)initWithID:(NSInteger)dynamicID;

/*!
 @abstract VC弹出方式
 如果为true，那么推出VC时的方式为dismiss，否则为pop
 */
@property (nonatomic, assign) BOOL disMode;

/*!
 @abstract 历史订单的去评论功能使用的订单ID
 */
@property (nonatomic, assign) NSInteger orderId;

/*!
 @abstract 此代理必须适应CloseControllerDelegate
 */
@property (nonatomic, strong) id<CloseControllerDelegate> delegate;

/*!
 @abstract DynamicDetailViewController的代理对象
 此代理必须适应DynamicOperateDelegate
 */
@property (nonatomic, weak) id<DynamicOperateDelegate> operateDelegate;

@end
